package com.gz.moreaseManager.sys.service;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.gz.moreaseManager.sys.entity.User;
import com.baomidou.mybatisplus.service.IService;
import com.gz.moreaseManager.sys.transfer.SysUserVo;

/**
 * <p>
 * 用户信息表 服务类
 * </p>
 *
 * @author wike
 * @since 2019-02-19
 */
public interface IUserService extends IService<User> {

    /**
     * 根据用户名查询用户
     *
     * @param userName 用户名
     * @return 用户信息
     */
    SysUserVo findUserByUserName(String userName);

    /**
     * 根据用户ID获取用户信息
     *
     * @param userId 用户ID
     * @return 用户信息
     */
    SysUserVo findUserInfoByUserId(Integer userId);

    /**
     * 删除用户
     *
     * @param userId 用户ID
     * @return 操作结果
     */
    boolean deleteUser(Integer userId);

    /**
     * 新增用户
     *
     * @param sysUserInfo 用户信息
     * @return 操作结果
     */
    boolean addUserInfo(SysUserVo sysUserInfo);

    /**
     * 修改用戶信息
     *
     * @param sysUserInfo 用户信息
     * @return 操作结果
     */
    boolean updateUserInfo(SysUserVo sysUserInfo);
    /**
     * 批量启用
     *
     * @param userIds 用户ID
     * @return 操作结果
     */
    boolean enableUserBatch(Integer... userIds);

    /**
     * 批量禁用
     *
     * @param userIds 用户ID
     * @return 操作结果
     */
    boolean disableUserBatch(Integer... userIds);

    /**
     * 修改密码
     * @param userName
     * @param userPhone
     * @param oldPass
     * @param newPass
     * @return
     */
    boolean resetPassword(String userName,String userPhone,String oldPass,String newPass);

    Page<User> findUserListByParams(Page<User> page, EntityWrapper<User> wrapper);


}
